package com.wjjun.base.dagger.module;

import com.qingmi.farmer.ui.buy.GoodsDetailActivity;
import com.qingmi.farmer.ui.buy.GoodsListActivity;
import com.qingmi.farmer.ui.demand.DemandDetailActivity;
import com.qingmi.farmer.ui.demand.DemandListActivity;
import com.qingmi.farmer.ui.login.LoginActivity;
import com.qingmi.farmer.ui.main.HomeFragment;
import com.qingmi.farmer.ui.main.MainActivity;
import com.qingmi.farmer.ui.my.MineFragment;
import com.qingmi.farmer.ui.news.NewsListActivity;
import com.qingmi.farmer.ui.notice.NoticeActivity;
import com.qingmi.farmer.ui.order.goods.GoodsOrderConfirmedFragment;
import com.qingmi.farmer.ui.order.goods.GoodsOrderFragment;
import com.qingmi.farmer.ui.order.goods.GoodsOrderPendingCheckFragment;
import com.qingmi.farmer.ui.order.goods.GoodsOrderPendingConfirmFragment;
import com.qingmi.farmer.ui.order.grain.GrainOrderCompletedFragment;
import com.qingmi.farmer.ui.order.grain.GrainOrderDetailActivity;
import com.qingmi.farmer.ui.order.grain.GrainOrderFragment;
import com.qingmi.farmer.ui.order.grain.GrainOrderPendingConfirmFragment;
import com.qingmi.farmer.ui.order.grain.GrainOrderPendingReportFragment;
import com.qingmi.farmer.ui.splash.SplashActivity;
import com.qingmi.farmer.ui.trolley.BuyTrolleyFragment;
import com.qingmi.farmer.ui.trolley.TrolleyFragment;
import com.qingmi.farmer.ui.webview.WebViewActivity;
import com.wjjun.base.dagger.component.BaseActivityComponent;
import com.wjjun.base.dagger.component.BaseFragmentComponent;

import dagger.Module;
import dagger.android.ContributesAndroidInjector;

/**
 * 所有的Module都放这里, 统一管理
 * Created by 67535 on 2018/5/25.
 */
@Module(subcomponents = {
        BaseActivityComponent.class,
        BaseFragmentComponent.class
})
public abstract class AllActivitiesModule {

    //TODO 添加需要注入的Activity或者Fragment

    @ContributesAndroidInjector()
    abstract SplashActivity contributeSplashActivityInjector();


    @ContributesAndroidInjector()
    abstract LoginActivity contributeLoginActivityInjector();

    @ContributesAndroidInjector()
    abstract MainActivity contributeMainActivityInjector();

    @ContributesAndroidInjector()
    abstract HomeFragment contributeHomeFragmentInjector();

    @ContributesAndroidInjector()
    abstract DemandListActivity contributeDemandListActivityInjector();

    @ContributesAndroidInjector()
    abstract DemandDetailActivity contributeDemandDetailActivityInjector();

    @ContributesAndroidInjector()
    abstract GoodsDetailActivity contributeGoodsDetailActivityInjector();

    @ContributesAndroidInjector()
    abstract GoodsListActivity contributeGoodsListActivityInjector();

    @ContributesAndroidInjector()
    abstract NewsListActivity contributeNewsListActivityInjector();

    @ContributesAndroidInjector()
    abstract NoticeActivity contributeNoticeActivityInjector();

    @ContributesAndroidInjector()
    abstract WebViewActivity contributeWebViewActivityInjector();

    @ContributesAndroidInjector()
    abstract MineFragment contributeMineFragmentInjector();

    @ContributesAndroidInjector()
    abstract TrolleyFragment contributeTrolleyFragmentInjector();

    @ContributesAndroidInjector()
    abstract BuyTrolleyFragment contributeBuyTrolleyFragmentInjector();


    @ContributesAndroidInjector()
    abstract GrainOrderCompletedFragment contributeGrainOrderCompletedFragmentInjector();

    @ContributesAndroidInjector()
    abstract GrainOrderDetailActivity contributeGrainOrderDetailActivityInjector();

    @ContributesAndroidInjector()
    abstract GrainOrderFragment contributeGrainOrderFragmentInjector();

    @ContributesAndroidInjector()
    abstract GrainOrderPendingConfirmFragment contributeGrainOrderPendingReceiveFragmentInjector();

    @ContributesAndroidInjector()
    abstract GrainOrderPendingReportFragment contributeGrainOrderPendingReportFragmentInjector();

    @ContributesAndroidInjector()
    abstract GoodsOrderConfirmedFragment contributeConfirmedFragmentInjector();

    @ContributesAndroidInjector()
    abstract GoodsOrderFragment contributeGoodsOrderFragmentInjector();

    @ContributesAndroidInjector()
    abstract GoodsOrderPendingCheckFragment contributePendingCheckFragmentInjector();

    @ContributesAndroidInjector()
    abstract GoodsOrderPendingConfirmFragment contributePendingConfirmFragmentInjector();

}
